home *** CD-ROM | disk | FTP | other *** search
- ; ------------------------------ FIRE.ASM ------------------------------
- ; Bye Jare of VangeliSTeam. Want more comments? Write'em. O:-)
-
-
- .MODEL SMALL
- .STACK 400
- DOSSEG
- LOCALS
-
- .DATA
-
- FirePal LABEL BYTE
- ; Fire palette, colors 0-63 ------------
-
- DB 0, 0, 0, 0, 1, 1, 0, 4, 5, 0, 7, 9
- DB 0, 8, 11, 0, 9, 12, 15, 6, 8, 25, 4, 4
- DB 33, 3, 3, 40, 2, 2, 48, 2, 2, 55, 1, 1
- DB 63, 0, 0, 63, 0, 0, 63, 3, 0, 63, 7, 0
- DB 63, 10, 0, 63, 13, 0, 63, 16, 0, 63, 20, 0
- DB 63, 23, 0, 63, 26, 0, 63, 29, 0, 63, 33, 0
- DB 63, 36, 0, 63, 39, 0, 63, 39, 0, 63, 40, 0
- DB 63, 40, 0, 63, 41, 0, 63, 42, 0, 63, 42, 0
- DB 63, 43, 0, 63, 44, 0, 63, 44, 0, 63, 45, 0
- DB 63, 45, 0, 63, 46, 0, 63, 47, 0, 63, 47, 0
- DB 63, 48, 0, 63, 49, 0, 63, 49, 0, 63, 50, 0
- DB 63, 51, 0, 63, 51, 0, 63, 52, 0, 63, 53, 0
- DB 63, 53, 0, 63, 54, 0, 63, 55, 0, 63, 55, 0
- DB 63, 56, 0, 63, 57, 0, 63, 57, 0, 63, 58, 0
- DB 63, 58, 0, 63, 59, 0, 63, 60, 0, 63, 60, 0
- DB 63, 61, 0, 63, 62, 0, 63, 62, 0, 63, 63, 0
-
-
- ByeMsg DB 'FIRE was coded bye Jare of VangeliSTeam, 9-10/5/93', 13, 10
- DB 'Sayonara', 13, 10, 10
- DB 'ELYSIUM music composed by Jester of Sanity (an Amiga demo group, I think)', 13, 10
- DB 'The music system you''ve just been listening is the VangeliSTracker 1.2b', 13, 10
- DB 'VangeliSTracker is Freeware (no money required), and distributed in source code', 13, 10
- DB 'If you haven''t got your copy of the VangeliSTracker, please go to your', 13, 10
- DB 'nearest BBS and get it NOW', 13, 10
- DB 'Also, don''t forget that YOU can join the VangeliSTeam. Contact the', 13, 10
- DB 'VangeliSTeam in the following addresses: ', 13, 10, 10
- DB ' Mail: VangeliSTeam ≥ This demo is dedicated to', 13, 10
- DB ' Juan Carlos ArÇvalo Baeza ≥ Mark J. Cox', 13, 10
- DB ' Apdo. de Correos 156.405 ≥ and', 13, 10
- DB ' 28080 - Madrid (Spain) ≥ Michael Abrash', 13, 10
- DB ' Internet: jarevalo@moises.ls.fi.upm.es ≥ At last, the PC showed good', 13, 10
- DB ' Fidonet: 2:341/27.16, 2:341/15.16, 2:341/9.21 ≥ for something.', 13, 10, 10
- DB 'Greetings to all demo groups and MOD dudes around.', 13, 10
- DB '$'
-
-
- UDATASEG
-
- Imagen DB 80*50 DUP (?)
- Imagen2 DB 80*50 DUP (?)
-
- .CODE
- .STARTUP
-
- CLD
- MOV AX,13h
- INT 10h
- CLI
- MOV DX,3c4h
- MOV AX,604h ; "Unchain my heart". And my VGA...
- OUT DX,AX
- MOV AX,0F02h ; All planes
- OUT DX,AX
-
- MOV DX,3D4h
- MOV AX,14h ; Disable dword mode
- OUT DX,AX
- MOV AX,0E317h ; Enable byte mode.
- OUT DX,AX
- MOV AL,9
- OUT DX,AL
- INC DX
- IN AL,DX
- AND AL,0E0h ; Duplicate each scan 8 times.
- ADD AL,7
- OUT DX,AL
-
- MOV DX,3c8h ; Setup palette.
- XOR AL,AL
- OUT DX,AL
- INC DX
- MOV CX,64*3
- MOV SI,OFFSET FirePal ; Prestored...
- @@pl1:
- LODSB
- OUT DX,AL
- LOOP @@pl1
- MOV AL,63
- MOV CX,192*3 ; And white heat.
- @@pl2:
- OUT DX,AL
- LOOP @@pl2
- STI
-
- MOV AX,DS
- MOV ES,AX
- MOV DI,OFFSET Imagen ; Cleanup both Images.
- MOV CX,80*50
- XOR AX,AX
- REP STOSW
-
- MainLoop:
- MOV DX,3DAh ; Retrace sync.
- @@vs1:
- IN AL,DX
- TEST AL,8
- JZ @@vs1
- @@vs2:
- IN AL,DX
- TEST AL,8
- JNZ @@vs2
-
- PUSH DS
- POP ES
- MOV SI,81+OFFSET Imagen ; Funny things start here. 8-P
- MOV DI,81+OFFSET Imagen2
- MOV CX,48*80-2
- XOR BH,BH
- @@lp:
- XOR AX,AX
- ADD AL,-1[SI]
- ADC AH,BH
- ADD AL,-80[SI]
- ADC AH,BH
- ADD AL,-79[SI]
- ADC AH,BH
- ADD AL,-81[SI]
- ADC AH,BH
- ADD AL,1[SI]
- ADC AH,BH
- ADD AL,80[SI]
- ADC AH,BH
- ADD AL,79[SI]
- ADC AH,BH
- ADD AL,81[SI]
- ADC AH,BH
- ROR AX,1
- ROR AX,1
- ROR AX,1
- TEST AH,60h ; Wanna know why 60h? Me too.
- JNZ @@nx ; This is pure experience.
- CMP DI,46*80+OFFSET Imagen2 ; And this was a bug.
- JNC @@dec ; This one's by my cat.
- OR AL,AL ; My dog coded here too.
- JZ @@nx ; I helped my sister with this one.
- @@dec:
- DEC AL ; Yeah! Cool a bit, please.
- @@nx:
- INC SI
- STOSB
- LOOP @@lp ; New image stored in Imagen2.
-
- MOV SI,80+OFFSET Imagen2 ; Scrolling copy. :-)
- MOV DI,OFFSET Imagen
- MOV CX,40*48
- REP MOVSW
-
- MOV SI,80*43+OFFSET Imagen2 ; Get rid of some ashes.
- MOV CX,6*80
- MOV AH,22
- @@rcl:
- MOV AL,[SI]
- CMP AL,15
- JNC @@rcn
- SUB AL,AH
- NEG AL
- MOV [SI],AL
- @@rcn:
- INC SI
- LOOP @@rcl
-
- MOV SI,80+OFFSET Imagen2 ; And show it.
- MOV DI,0
- MOV AX,0A000h
- MOV ES,AX
- MOV CX,40*48
- REP MOVSW
-
- MOV AH,1
- INT 16h
- JNZ Bye
- JMP MainLoop
- Bye:
- XOR AH,AH
- INT 16h
- MOV AX,3
- INT 10h
- MOV DX,OFFSET ByeMsg
- MOV AH,9
- INT 21h
- MOV AX,4C00h
- INT 21h
-
- END
- ; ------------------------------ End of FIRE.ASM ---------------------------
-
-